<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>天禾汽车租赁系统-权限管理</title>
    <link  href="/static/plugins/bootstrap/css/bootstrap.css" rel="stylesheet">
    <link href="/static/plugins/bootstrap-table/bootstrap-table.css" rel="stylesheet" >
    <link rel="stylesheet" href="/static/plugins/layui/css/layui.css">
    <link rel="stylesheet" href="/static/css/common.css">
</head>
<body>

    <div class="wrap-padding-15">
        <span class="layui-breadcrumb" >
          <a href="/" target="_top">首页</a>
          <a href="">权限管理</a>
          <a href="">列表</a>
        </span>

        <div id="toolbar" class="layui-btn-group">

            <c:forEach items="${buttonsPermi}" var="button">
                <button  data-url="${button.uri}" class="layui-btn " id="${button.idName}">${button.name}</button>
            </c:forEach>

            <button id="addBtn" data-url="/permission/add" class="layui-btn btn_add">增加</button>
            <button id="editBtn" data-url="/permission/edit"class="layui-btn btn_edit">编辑</button>
            <button id="delBtn" data-url="/permission/delete"class="layui-btn btn_delete">删除</button>

        </div>

        <table id="tb_permi"></table>

    </div>

    <script src="/static/plugins/jquery.js"></script>
    <script src="/static/plugins/bootstrap/js/bootstrap.js"></script>
    <script src="/static/plugins/bootstrap-table/bootstrap-table.js"></script>
    <script src="/static/plugins/bootstrap-table/bootstrap-table-zh-CN.js"></script>
    <script src="/static/plugins/layui/layui.js"></script>

    <script>
        layui.use(['element','layer'], function(){
            var element = layui.element;
            var layer = layui.layer;

            $("#addBtn").on('click',btnAdd)
            $("#editBtn").on('click',btnEdit);
            $("#delBtn").on('click',btnDel);

            $('#tb_permi').bootstrapTable({
                url: '/permission/listData',         //请求后台的URL（*）
                method: 'get',                      //请求方式（*）
                toolbar: '#toolbar',                //工具按钮用哪个容器
                striped: true,                      //是否显示行间隔色
                cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
                pagination: true,                   //是否显示分页（*）
                sortable: false,                     //是否启用排序
                sortOrder: "asc",                   //排序方式
                //queryParams: oTableInit.queryParams,//传递参数（*）
                sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
                pageNumber:1,                       //初始化加载第一页，默认第一页
                pageSize: 10,                       //每页的记录行数（*）
                pageList: [10, 25, 50, 100],        //可供选择的每页的行数（*）
                search: true,                       //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
                strictSearch: true,
                showColumns: true,                  //是否显示所有的列
                showRefresh: true,                  //是否显示刷新按钮
                //minimumCountColumns: 2,             //最少允许的列数
                clickToSelect: true,                //是否启用点击选中行
                height: 800,                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
                uniqueId: "permisid",                     //每一行的唯一标识，一般为主键列
                //showToggle:true,                    //是否显示详细视图和列表视图的切换按钮
                //cardView: false,                    //是否显示详细视图
                detailView: true,                   //是否显示父子表
                columns: [{
                    checkbox: true
                }, {
                    field: 'permisname',
                    title: '资源名称',
                    align:'center',
                    width:'33%',
                }, {
                    field: 'relateurl',
                    title: 'URI',
                    align:'center',
                    width:'33%',
                }, {
                    field: 'permistype',
                    title: '资源类型',
                    align:'center',
                    width:'33%',
                    formatter:function(value,row,index){
                        var rtVal = "";
                        switch(value){
                            case 1:rtVal = "模块";break;
                            case 9:rtVal = "默认资源";break;
                        }
                        return rtVal;
                    }
                },],

                onExpandRow: function (index, row, $detail) {
                    loadSubTable(index, row, $detail);  //加载子表
                }
            });
        });


        function loadSubTable(index, row, $detail) {
            var parentid = row.permisid;
            var cur_table = $detail.html('<table id="tb_permi_"></table>').find('table');
            $(cur_table).bootstrapTable({
                url: '/permission/list/child',
                method: 'get',
                queryParams: { parentid:parentid },
                clickToSelect: true,
                detailView: true,//父子表
                uniqueId: "permisid",
                columns: [{
                    checkbox: true
                }, {
                    field: 'permisname',
                    title: '资源名称',
                    width: '33%'
                }, {
                    field: 'relateurl',
                    title: 'URI',
                    width: '33%'
                },
                    {
                        field: 'permistype',
                        title: '资源类型',
                        width: '33%',
                        formatter:function (value, row, index) {
                            var rtVal = "";
                            switch (value) {
                                case 2: rtVal = "功能";break;
                                case 3: rtVal = "按钮";break;
                                case 4: rtVal = "附属操作";break;
                            }
                            return rtVal;
                        }
                    }],
                //无线循环取子表，直到子表里面没有记录
                onExpandRow: function (index, row, $Subdetail) {
                    loadSubTable(index, row, $Subdetail);
                }
            });
        };


        function btnAdd(){
            var url = $(this).data("url")
            location.href = url;

        }
        function btnDel(){
            //1.要想获取主子表所有选中行，首先得拿到所有的表格对象（给所有的table 起相同的标识）
            var $tables = $('table[id ^= tb_permi]');  //传入方法名调用该方法
            var rows = [];    //表示所有选中行的记录
            //2.遍历所有的表格对象，将其选中行，合并到一个数组中去
            $tables.each(function(){
                var selections = $(this).bootstrapTable('getSelections');
                if(selections.length > 0) {
                    $.merge(rows,selections);  //把 selections 数组合并到  rows中
                }
            });

            var rowIds = [];
            $(rows).each(function(){
                var id = this.permisid;
                rowIds.push(id);
            });

            //3.异步请求后台删除，所选行记录
            if(rows.length < 1) {
                layer.msg("请勾选至少一条数据");
            }else {
                layer.confirm("确定删除所选数据吗？",function (index) {
                    //执行删除操作
                    $.ajax({
                        url: "/permission/delete",
                        type: "post",
                        dataType: 'json',
                        data: {ids : rowIds.join(",")},
                        success:function(msg){
                            layer.msg(msg.message);
                            if(msg.code == 1) {
                                $("#tb_permi").bootstrapTable("refresh");  //刷新表格数据
                            }
                        },
                        error:function(e){
                            layer.msg("服务器忙，请稍后再试");
                        }

                    });
                });
            }
        }
        function btnEdit(){
           var $tables = $('table[id ^= tb_permi]');  //传入方法名调用该方法
           var rows = [];    //表示所有选中行的记录
           //2.遍历所有的表格对象，将其选中行，合并到一个数组中去
           $tables.each(function(){
               var selections = $(this).bootstrapTable('getSelections');
               if(selections.length > 0) {
                   $.merge(rows,selections);  //把 selections 数组合并到  rows中
               }
           });
           if(rows.length < 1) {
               layer.msg("请勾选一条数据");
           }else if(rows.length>1){
               layer.msg("只能勾选一条数据");
           }else{
               var id = (rows)[0].permisid
                var url = $(this).data("url")
               location.href = url+"?id="+id

              /* location.href = "/permission/edit?id="+id*/
           }

       }


    </script>
</body>
</html>
